Count tracking involves monitoring how many events or items occur for example, as real time streams of data arrive at entities or as pre-stored data is accessed by entities. For very large scale situations in distributed environments this becomes a difficult task because of the huge number of events or items to be counted and because of the need for communication between the entities in the distributed environment.
Count tracking is useful in many application domains. For example counting user's votes in a social networking environment, counting packets in a packet-based communications network to monitor traffic flow, counting data arriving at computing entities in a data center, counting queries arriving at a search engine, database applications and others. Often it is required to track a difference using count tracking technology. For example to track which of two candidates has a higher number of votes and by what voting margin.
Count tracking technology seeks to provide accurate counts whilst at the same time trying to reduce the amount of communication needed between entities in a distributed environment where the events or data that are being counted are observed.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known count tracking technology.